package org.su.generalmvc.annotaion;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


/**
 * action标示方法，action方法为xssh框架处理用户请求的具体方法。
 * 如果方法名不是以Action 结尾，那么就可以使用RequestMapping 标注方法为一个控制器方法。
 * @author yangchuan
 *
 */

@Retention(RetentionPolicy.RUNTIME)
@Target(value={ElementType.METHOD})
public @interface RequestMapping {
	/**
	 * 指定渲染视图的类型（json或velocity）
	 * @return
	 */
	  public ViewType value() default ViewType.velocity;

	  /**
	   * 指定请求的访问权限，默认不需要任何访问权限
	   * @return SessionWay对象
	   */
	  public Permiss permiss() default Permiss.login;
	  
	  /**
	   * action相对地址 完整的action地址等于： namespace+controller.url+RequestMapping.url
	   * @return 返回action的尾部地址
	   */
	  public String url() default "";
	  
	  /**
	   * action后缀，默认取系统全局配置后缀
	   * @return
	   */
	  public String suffix() default "";
	  
	  /**
	   * 用户自定义返回类型,必须和ViewType.userDefined 联合使用
	   * @return
	   */
	  public String userDefined()  default "";


	/**
	 * 请求的方法
	 * @return
	 */
	  public RequestMethod[] method() default {};
	  
}
